package leetcode_day._2021._202111;

import general_class.ListNode;

/**
 * @author yzh
 * @version 1.0
 * @date 2021/11/2 8:59
 * 删除链表中的节点
 * 请编写一个函数，用于 删除单链表中某个特定节点 。在设计函数时需要注意，你无法访问链表的头节点 head ，只能直接访问 要被删除的节点 。
 * 题目数据保证需要删除的节点 不是末尾节点
 * 算法：链表
 * 固定的思维：删除一个节点，就是把该节点的上一个节点的 next 指向该节点的下一个节点
 * 题目要求：永远找不到该节点的上一个节点
 * 做法：将删除节点的值变成该节点的下一个节点，然后将下一个节点删除
 * 如果删除的是末尾节点，那就无解，题目也说明了
 */
public class _02_237 {

    public void deleteNode(ListNode node) {
        node.val = node.next.val;
        node.next = node.next.next;
//        ListNode pre = node;
//        while (node.next != null) {
//            node.val = node.next.val;
//            pre = node;
//            node = node.next;
//        }
//        pre.next = null;
    }

}
